package com.ihelp.rest.mis.platform.service;

import java.util.List;

import net.sf.json.JSONArray;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ihelp.rest.base.po.SysCode;
import com.ihelp.rest.mis.platform.dao.ModuleDao;
import com.ihelp.rest.mis.platform.dao.RoleDao;
import com.ihelp.rest.mis.pojo.Module;
import com.ihelp.rest.mis.pojo.Role;
import com.ihelp.rest.utils.JsonCommon;

@Service
public class RoleService {
	
	@Autowired
	private RoleDao roleDao;
	
	@Autowired
	private ModuleDao moduleDao;

	/**
	 * 模块管理，JSON分页加载
	 * @return
	 */
	public String findRoles() {
		return JsonCommon.getGridJson(this.roleDao.countAll(),
				this.roleDao.listAll()).toString();
	}
	
	/**
	 * 角色下拉列表JSON 数据
	 * @return
	 */
	public String findRolesComJson() {
		return JSONArray.fromObject(this.roleDao.listAll()).toString();
	}
	
	/**
	 * 获取角色
	 * @param uuid
	 * @return
	 */
	public Role getRole(String uuid){
		if(StringUtils.isBlank(uuid)){
			return null;
		}
		return this.roleDao.get(uuid);
	}
	
	/**
	 * 删除角色
	 * @param uuid
	 * @return
	 */
	public String delRole(Role role){
		this.roleDao.deleteObject(role);
		return SysCode.SUCCESS;
	}
	
	/**
	 * 新增和修改角色
	 * @param role
	 * @param moduleArr
	 * @return
	 */
	public String saveRole(Role role, String moduleArr){
		if(StringUtils.isBlank(role.getUuid())){
			//新增
			role.setUuid(null);
		}
		if(StringUtils.isNotBlank(moduleArr)){
			List<Module> modules = this.moduleDao.queryModules(moduleArr);
			role.setModules(modules);
		}
		this.roleDao.saveOrUpdate(role);
		return SysCode.SUCCESS;
	}
	
}
